#ifndef IBUSINESSPLUGIN_H
#define IBUSINESSPLUGIN_H

#include <QString>
#include <QWidget>
#include "PluginIID.h"
#include "PluginStruct.h"
class ICore; // 前置声明

class IUIPlugin
{
public:
    virtual ~IUIPlugin() = default;

    virtual const UIPluginInfo& pluginInfo() const = 0;
    virtual bool initialize(ICore* core) = 0; // 初始化时注入Core指针，插件可以通过它调用核心功能
    virtual void shutdown() = 0;

    virtual QWidget* widget(QWidget* parent = nullptr) = 0;
};

Q_DECLARE_INTERFACE(IUIPlugin, IID_IUIPlugin)

#endif // IBUSINESSPLUGIN_H
